//@ts-ignore
import list from '../../filePaths.json'
/*********************** *******************************/
// 获取mackdown文件夹下的所有md文件
export const getMdobj = () => {
  const Mdobj: any = {}
  // const modules = import.meta.glob('@/mackdown/*/*.md')
  const keys = list.sort(compareFiles)
  keys.reverse()

  //切割并且分配哪些文件夹有哪些文件对应哪些属性有哪些值
  keys.map((item) => {
    if (!Mdobj[item.split('/')[item.split('/').length - 2]]?.name) {
      //添加文件夹名为一级属性,
      Mdobj[item.split('/')[item.split('/').length - 2]] = {}
      //添加name属性并赋值文件名给name
      Mdobj[item.split('/')[item.split('/').length - 2]].name = []
    }
    if (!Mdobj[item.split('/')[item.split('/').length - 2]].time) {
      //添加time属性并赋值发布文件的时间给time
      Mdobj[item.split('/')[item.split('/').length - 2]].time = []
    }

    Mdobj[item.split('/')[item.split('/').length - 2]].name.push(
      item.split('/')[item.split('/').length - 1].split('_')[0]
    )
    Mdobj[item.split('/')[item.split('/').length - 2]].time.push(
      item.split('/')[item.split('/').length - 1].split('_')[1].split('.')[0]
    )
  })
  //吧切割好的对象二次切割,分为二级属性,分为时间,跟名字

  return Mdobj
}

/************************************************* */
const files = [
  '/src/mackdown/cultivation/js基础第一阶段_2023-5-10.md',
  '/src/mackdown/cultivation/vue3动态添加路由_2023-5-20.md',
  '/src/mackdown/cultivation/vue3动态添加路由_2023-5-21.md',
  '/src/mackdown/cultivation/vue3动态添加路由_2023-5-22.md',
  '/src/mackdown/share/js基础第一阶段_2023-5-10.md',
  '/src/mackdown/share/vue3动态添加路由_2023-5-20.md',
  '/src/mackdown/share/vue3动态添加路由_2023-5-21.md',
  '/src/mackdown/share/vue3动态添加路由_2023-5-22.md',
  '/src/mackdown/technology/js基础第一阶段_2023-5-10.md',
  '/src/mackdown/technology/vue3动态添加路由_2023-4-22.md',
  '/src/mackdown/technology/vue3动态添加路由_2023-5-20.md',
  '/src/mackdown/technology/vue3动态添加路由_2023-5-21.md',
]
//很牛逼的排序
function compareFiles(a: any, b: any) {
  const regex = /_(\d{4}-\d{1,2}-\d{1,2})\.md$/
  const aPrefix = a.match(/^(\/src\/mackdown\/\w+)/)[1]
  const bPrefix = b.match(/^(\/src\/mackdown\/\w+)/)[1]
  if (aPrefix < bPrefix) {
    return -1
  } else if (aPrefix > bPrefix) {
    return 1
  } else {
    const aTime = new Date(a.match(regex)[1]).getTime()
    const bTime = new Date(b.match(regex)[1]).getTime()
    return aTime - bTime
  }
}
